<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>JCSDK Objective-C API Reference for iOS/macOS: JCMediaChannel类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">JCSDK Objective-C API Reference for iOS/macOS
   &#160;<span id="projectnumber">2.3.3</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">构造函数</a> &#124;
<a href="#pub-static-methods">类方法</a> &#124;
<a href="#properties">属性</a> &#124;
<a href="interface_j_c_media_channel-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">JCMediaChannel类 参考<div class="ingroups"><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html">媒体频道模块</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#import &lt;<a class="el" href="_j_c_media_channel_8h_source.html">JCMediaChannel.h</a>&gt;</code></p>
<div class="dynheader">
类 JCMediaChannel 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="interface_j_c_media_channel.png" alt=""/>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
构造函数</h2></td></tr>
<tr class="memitem:adbcf56921812241efff844203504b1e6"><td class="memItemLeft" align="right" valign="top">(int)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#adbcf56921812241efff844203504b1e6">query:</a></td></tr>
<tr class="separator:adbcf56921812241efff844203504b1e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae7c111f87465ec2dbac767b63f484aa"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#aae7c111f87465ec2dbac767b63f484aa">join:joinParam:</a></td></tr>
<tr class="separator:aae7c111f87465ec2dbac767b63f484aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a464117e54a77bccbfd513ccff533708b"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a464117e54a77bccbfd513ccff533708b">leave</a></td></tr>
<tr class="separator:a464117e54a77bccbfd513ccff533708b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2905c2f6c51c4c01c61f5f4d6c39a49"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#ac2905c2f6c51c4c01c61f5f4d6c39a49">stop</a></td></tr>
<tr class="separator:ac2905c2f6c51c4c01c61f5f4d6c39a49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfdb1bfa7e079a552a4441050e816560"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#acfdb1bfa7e079a552a4441050e816560">enableUploadAudioStream:</a></td></tr>
<tr class="separator:acfdb1bfa7e079a552a4441050e816560"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12d0c37563fc883d624c1e52c70d380a"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a12d0c37563fc883d624c1e52c70d380a">enableUploadVideoStream:</a></td></tr>
<tr class="separator:a12d0c37563fc883d624c1e52c70d380a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4bbd99b56e5f38a26cceaccb69776618"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a4bbd99b56e5f38a26cceaccb69776618">enableAudioOutput:</a></td></tr>
<tr class="separator:a4bbd99b56e5f38a26cceaccb69776618"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b44d999a8f89309df3580efc9ef9225"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a1b44d999a8f89309df3580efc9ef9225">requestVideo:pictureSize:</a></td></tr>
<tr class="separator:a1b44d999a8f89309df3580efc9ef9225"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79b28b8dada5450c5f25e2844962b7d0"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a79b28b8dada5450c5f25e2844962b7d0">enableScreenShare:</a></td></tr>
<tr class="separator:a79b28b8dada5450c5f25e2844962b7d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3e33762ee2a89b6232485f66f9b54a7"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#ad3e33762ee2a89b6232485f66f9b54a7">requestScreenVideo:pictureSize:</a></td></tr>
<tr class="separator:ad3e33762ee2a89b6232485f66f9b54a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a615bf5d67e360c8d84b92496cf884e92"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a615bf5d67e360c8d84b92496cf884e92">enableCdn:keyInterval:</a></td></tr>
<tr class="separator:a615bf5d67e360c8d84b92496cf884e92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ef724d64936c83f2d68346314755e9f"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a5ef724d64936c83f2d68346314755e9f">enableRecord:recordParam:</a></td></tr>
<tr class="separator:a5ef724d64936c83f2d68346314755e9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2feaf09ec144035583ec829291f85f22"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_j_c_media_channel_participant.html">JCMediaChannelParticipant</a> *__nullable)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a2feaf09ec144035583ec829291f85f22">getParticipant:</a></td></tr>
<tr class="separator:a2feaf09ec144035583ec829291f85f22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4cf23f3d19b23f8658c8b8ab275d2aae"><td class="memItemLeft" align="right" valign="top">(NSString *__nullable)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a4cf23f3d19b23f8658c8b8ab275d2aae">getStatistics</a></td></tr>
<tr class="separator:a4cf23f3d19b23f8658c8b8ab275d2aae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e9e50c858a3d47889f578b323a9faa9"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a5e9e50c858a3d47889f578b323a9faa9">setCustomProperty:</a></td></tr>
<tr class="separator:a5e9e50c858a3d47889f578b323a9faa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4eebb7982edd5f589af377fa0e0ce014"><td class="memItemLeft" align="right" valign="top">(NSString *__nullable)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a4eebb7982edd5f589af377fa0e0ce014">getCustomProperty</a></td></tr>
<tr class="separator:a4eebb7982edd5f589af377fa0e0ce014"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7617239966ea595482eb11beb0b8ff4a"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a7617239966ea595482eb11beb0b8ff4a">sendMessage:content:toUserId:</a></td></tr>
<tr class="separator:a7617239966ea595482eb11beb0b8ff4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40d38e8ba39a92370ea614fdd4baafe8"><td class="memItemLeft" align="right" valign="top">(int)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a40d38e8ba39a92370ea614fdd4baafe8">inviteSipUser:sipParam:</a></td></tr>
<tr class="separator:a40d38e8ba39a92370ea614fdd4baafe8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1d66a2c12211d3f6913237904e115da"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#ab1d66a2c12211d3f6913237904e115da">sendCommand:commandParam:</a></td></tr>
<tr class="separator:ab1d66a2c12211d3f6913237904e115da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9777d3af4a484672273ca4a766b32e58"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a9777d3af4a484672273ca4a766b32e58">setCustomRole:participant:</a></td></tr>
<tr class="separator:a9777d3af4a484672273ca4a766b32e58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af87e398452edac3b76ad96ae2c0c00ba"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga7131185993d8d7df9bfccdec3b087740">JCMediaChannelCustomRole</a>)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#af87e398452edac3b76ad96ae2c0c00ba">getCustomRole</a></td></tr>
<tr class="separator:af87e398452edac3b76ad96ae2c0c00ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adae24eb1c040e18d0ca98ddcab18da21"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#adae24eb1c040e18d0ca98ddcab18da21">setCustomState:participant:</a></td></tr>
<tr class="separator:adae24eb1c040e18d0ca98ddcab18da21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a217cd598c99384ab0f4293af6b7b6141"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga2a01dac63a4b8ce38562c4db9b704333">JCMediaChannelCustomState</a>)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a217cd598c99384ab0f4293af6b7b6141">getCustomState</a></td></tr>
<tr class="separator:a217cd598c99384ab0f4293af6b7b6141"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd1a648db825b4c5d32afd7403ad9114"><td class="memItemLeft" align="right" valign="top">(BOOL)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#acd1a648db825b4c5d32afd7403ad9114">kick:</a></td></tr>
<tr class="separator:acd1a648db825b4c5d32afd7403ad9114"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8b6019fa2b0982d7822cef8cd9df6c4"><td class="memItemLeft" align="right" valign="top">(bool)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#af8b6019fa2b0982d7822cef8cd9df6c4">sendCommandToDelivery:</a></td></tr>
<tr class="separator:af8b6019fa2b0982d7822cef8cd9df6c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e9c87899585ac3e730a273f20ed1aea"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a2e9c87899585ac3e730a273f20ed1aea">enableSelfVideoRatio:ratio:</a></td></tr>
<tr class="separator:a2e9c87899585ac3e730a273f20ed1aea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a816c2a4794b157fd6a17cd2cd1196ae8"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> *__nullable)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a816c2a4794b157fd6a17cd2cd1196ae8">startScreenShareVideo:pictureSize:</a></td></tr>
<tr class="separator:a816c2a4794b157fd6a17cd2cd1196ae8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a704cf64d9a0cc2f3c4cdd12348b278ce"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">- <a class="el" href="interface_j_c_media_channel.html#a704cf64d9a0cc2f3c4cdd12348b278ce">stopScreenShareVideo</a></td></tr>
<tr class="separator:a704cf64d9a0cc2f3c4cdd12348b278ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
类方法</h2></td></tr>
<tr class="memitem:adcd6f2df492d8961ca35471311311dbb"><td class="memItemLeft" align="right" valign="top">(<a class="el" href="interface_j_c_media_channel.html">JCMediaChannel</a> *__nullable)&#160;</td><td class="memItemRight" valign="bottom">+ <a class="el" href="interface_j_c_media_channel.html#adcd6f2df492d8961ca35471311311dbb">create:mediaDevice:callback:</a></td></tr>
<tr class="separator:adcd6f2df492d8961ca35471311311dbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02812bf42303ee865d23e9bebd531496"><td class="memItemLeft" align="right" valign="top">(void)&#160;</td><td class="memItemRight" valign="bottom">+ <a class="el" href="interface_j_c_media_channel.html#a02812bf42303ee865d23e9bebd531496">destroy</a></td></tr>
<tr class="separator:a02812bf42303ee865d23e9bebd531496"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
属性</h2></td></tr>
<tr class="memitem:a95d38657f312acb8975f83e5edbddff3"><td class="memItemLeft" align="right" valign="top">NSString *__nullable&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_channel.html#a95d38657f312acb8975f83e5edbddff3">channelUri</a></td></tr>
<tr class="separator:a95d38657f312acb8975f83e5edbddff3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ec8a0a382105daa2fa68cc1d67140a6"><td class="memItemLeft" align="right" valign="top">NSString *__nullable&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_channel.html#a9ec8a0a382105daa2fa68cc1d67140a6">channelId</a></td></tr>
<tr class="separator:a9ec8a0a382105daa2fa68cc1d67140a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae369b43c1416966346c5b0e812f6b3c1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_channel.html#ae369b43c1416966346c5b0e812f6b3c1">channelNumber</a></td></tr>
<tr class="separator:ae369b43c1416966346c5b0e812f6b3c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a508a06d19f5ad3767911052afe5e54b9"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_channel.html#a508a06d19f5ad3767911052afe5e54b9">confId</a></td></tr>
<tr class="separator:a508a06d19f5ad3767911052afe5e54b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03fd9357811dcd0b0b4d0c9a63979b75"><td class="memItemLeft" align="right" valign="top">NSString *__nonnull&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_channel.html#a03fd9357811dcd0b0b4d0c9a63979b75">password</a></td></tr>
<tr class="separator:a03fd9357811dcd0b0b4d0c9a63979b75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38cdd34e0ae753b9f49fa36809aa1437"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga8037700c77019a9964f7a7b7fcfb814f">JCMediaChannelState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_channel.html#a38cdd34e0ae753b9f49fa36809aa1437">state</a></td></tr>
<tr class="separator:a38cdd34e0ae753b9f49fa36809aa1437"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1aac4cfe9687c8643facedf0758ea43"><td class="memItemLeft" align="right" valign="top">NSArray *__nonnull&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_channel.html#aa1aac4cfe9687c8643facedf0758ea43">participants</a></td></tr>
<tr class="separator:aa1aac4cfe9687c8643facedf0758ea43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07b9c934f8bd40ce2fed419befd58f42"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_channel.html#a07b9c934f8bd40ce2fed419befd58f42">uploadLocalAudio</a></td></tr>
<tr class="separator:a07b9c934f8bd40ce2fed419befd58f42"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f9f270cd0360febc083eaf84ece5e91"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_channel.html#a2f9f270cd0360febc083eaf84ece5e91">uploadLocalVideo</a></td></tr>
<tr class="separator:a2f9f270cd0360febc083eaf84ece5e91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad050a05ae000da5132b6034c66b12bb9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_channel.html#ad050a05ae000da5132b6034c66b12bb9">audioOutput</a></td></tr>
<tr class="separator:ad050a05ae000da5132b6034c66b12bb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a501cd5147754987a2796fb3b88f74c80"><td class="memItemLeft" align="right" valign="top">NSString *__nullable&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_channel.html#a501cd5147754987a2796fb3b88f74c80">screenRenderId</a></td></tr>
<tr class="separator:a501cd5147754987a2796fb3b88f74c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0100882cd7322da94f248efa86641c65"><td class="memItemLeft" align="right" valign="top">NSString *__nullable&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_channel.html#a0100882cd7322da94f248efa86641c65">screenUserId</a></td></tr>
<tr class="separator:a0100882cd7322da94f248efa86641c65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f95e9ce419edb0b89301455b75dba4e"><td class="memItemLeft" align="right" valign="top">NSString *__nullable&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_channel.html#a3f95e9ce419edb0b89301455b75dba4e">title</a></td></tr>
<tr class="separator:a3f95e9ce419edb0b89301455b75dba4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a625a6dd3a5d0ae9df25698aebc96a2f2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga7f08f9168c5648a33072b5856de6af1a">JCMediaChannelRecordState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_channel.html#a625a6dd3a5d0ae9df25698aebc96a2f2">recordState</a></td></tr>
<tr class="separator:a625a6dd3a5d0ae9df25698aebc96a2f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c421ef380fbe19dd2bbb8226272cf63"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga6d8f048f5632efef172fab89239dfb22">JCMediaChannelCdnState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_channel.html#a5c421ef380fbe19dd2bbb8226272cf63">cdnState</a></td></tr>
<tr class="separator:a5c421ef380fbe19dd2bbb8226272cf63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafc27fec7e4946b5154f43dbdc4e595d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="interface_j_c_media_channel_participant.html">JCMediaChannelParticipant</a> *__nullable&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_channel.html#aafc27fec7e4946b5154f43dbdc4e595d">selfParticipant</a></td></tr>
<tr class="separator:aafc27fec7e4946b5154f43dbdc4e595d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a011061a9e5d4aed2ea6e6cdfb00b3d78"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_j_c_media_channel.html#a011061a9e5d4aed2ea6e6cdfb00b3d78">volumeChangeNotify</a></td></tr>
<tr class="separator:a011061a9e5d4aed2ea6e6cdfb00b3d78"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>媒体频道模块，类似音视频房间的概念，可以通过频道号 <a class="el" href="interface_j_c_media_channel.html#a9ec8a0a382105daa2fa68cc1d67140a6">channelId</a> 加入频道进行音视频通话 </p>
</div><h2 class="groupheader">函数文档</h2>
<a id="adcd6f2df492d8961ca35471311311dbb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adcd6f2df492d8961ca35471311311dbb">&#9670;&nbsp;</a></span>create:mediaDevice:callback:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">+ (<a class="el" href="interface_j_c_media_channel.html">JCMediaChannel</a>* __nullable) create: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_j_c_client.html">JCClient</a> *__nonnull)&#160;</td>
          <td class="paramname"><em>client</em></td>
        </tr>
        <tr>
          <td class="paramkey">mediaDevice:</td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_j_c_media_device.html">JCMediaDevice</a> *__nonnull)&#160;</td>
          <td class="paramname"><em>mediaDevice</em></td>
        </tr>
        <tr>
          <td class="paramkey">callback:</td>
          <td></td>
          <td class="paramtype">(id&lt; <a class="el" href="protocol_j_c_media_channel_callback-p.html">JCMediaChannelCallback</a> &gt; __nonnull)&#160;</td>
          <td class="paramname"><em>callback</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>创建 <a class="el" href="interface_j_c_media_channel.html">JCMediaChannel</a> 对象</p>
<p><a class="el" href="interface_j_c_media_channel.html">JCMediaChannel</a> 的所有接口函数，如无特殊说明，都建议在主线程调用</p>
<dl class="section note"><dt>注解</dt><dd><ul>
<li>调用此方法创建 <a class="el" href="interface_j_c_media_channel.html">JCMediaChannel</a> 对象后，期间没有调用过 <a class="el" href="interface_j_c_media_channel.html#a02812bf42303ee865d23e9bebd531496">destroy</a> 方法销毁对象，然后又重复调用此方法，会直接返回第一次创建的 <a class="el" href="interface_j_c_media_channel.html">JCMediaChannel</a> 对象</li>
<li>调用此方法前确保 <a class="el" href="interface_j_c_client.html">JCClient</a> 已完成初始化，即 <a class="el" href="interface_j_c_client.html#af428728decbaf19a2ac6552a07351a65">state</a> 方法获取的状态值不等于 <a class="el" href="group___xE7_x99_xBB_xE5_xBD_x95_xE6_xA8_xA1_xE5_x9D_x97.html#gga485360c806cb3a83e41ac56a9ad7e709a5a6b582ba8275e39567b419ce05b7860">JCClientStateNotInit</a></li>
</ul>
</dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">client</td><td><a class="el" href="interface_j_c_client.html">JCClient</a> 对象 </td></tr>
    <tr><td class="paramname">mediaDevice</td><td><a class="el" href="interface_j_c_media_device.html">JCMediaDevice</a> 对象 </td></tr>
    <tr><td class="paramname">callback</td><td><a class="el" href="protocol_j_c_media_channel_callback-p.html">JCMediaChannelCallback</a> 对象，用于回调相关通知 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd><a class="el" href="interface_j_c_media_channel.html">JCMediaChannel</a> 对象 </dd></dl>
<dl class="exception"><dt>异常</dt><dd>
  <table class="exception">
    <tr><td class="paramname">JCClient、JCMediaDevice、JCMediaChannelCallback 任意一个参数传空就会出现调用失败</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a02812bf42303ee865d23e9bebd531496"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a02812bf42303ee865d23e9bebd531496">&#9670;&nbsp;</a></span>destroy</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">+ (void) destroy </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>销毁 <a class="el" href="interface_j_c_media_channel.html">JCMediaChannel</a> 对象</p>
<dl class="section note"><dt>注解</dt><dd>此方法为异步调用，所以在调用此方法后不能马上调用 <a class="el" href="interface_j_c_media_channel.html#adcd6f2df492d8961ca35471311311dbb">create</a> 方法去重新创建 <a class="el" href="interface_j_c_media_channel.html">JCMediaChannel</a> 对象 </dd></dl>

</div>
</div>
<a id="a4bbd99b56e5f38a26cceaccb69776618"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4bbd99b56e5f38a26cceaccb69776618">&#9670;&nbsp;</a></span>enableAudioOutput:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) enableAudioOutput: </td>
          <td></td>
          <td class="paramtype">(bool)&#160;</td>
          <td class="paramname"><em>enable</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>开启/关闭音频输出</p>
<p>可实现本地静音功能（听不到频道内其他成员的声音），建议每次 <a class="el" href="interface_j_c_media_channel.html#aae7c111f87465ec2dbac767b63f484aa">join</a> 前设置</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">enable</td><td>是否开启音频输出<ul>
<li>true: 开启</li>
<li>false: 关闭 </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>调用是否正常<ul>
<li>true：正常执行调用流程<ul>
<li>在调用此方法时，用户的频道状态不是已加入状态，则不会收到回调通知</li>
<li>在调用此方法时，用户的频道状态是已加入状态，则会收到 <a class="el" href="protocol_j_c_media_channel_callback-p.html#a8f10fcd984b93e9d9ae2ab14b848ba32">onMediaChannelPropertyChange</a> 通知</li>
</ul>
</li>
<li>false：调用失败，不会收到回调通知 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a615bf5d67e360c8d84b92496cf884e92"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a615bf5d67e360c8d84b92496cf884e92">&#9670;&nbsp;</a></span>enableCdn:keyInterval:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) enableCdn: </td>
          <td></td>
          <td class="paramtype">(bool)&#160;</td>
          <td class="paramname"><em>enable</em></td>
        </tr>
        <tr>
          <td class="paramkey">keyInterval:</td>
          <td></td>
          <td class="paramtype">(int)&#160;</td>
          <td class="paramname"><em>keyInterval</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>开关Cdn推流</p>
<p>在收到 <a class="el" href="protocol_j_c_media_channel_callback-p.html#a8f10fcd984b93e9d9ae2ab14b848ba32">onMediaChannelPropertyChange</a> 回调后检查是否开启</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">enable</td><td>是否开启Cdn推流<ul>
<li>true: 开启 Cdn 推流</li>
<li>false: 关闭 Cdn 推流 </li>
</ul>
</td></tr>
    <tr><td class="paramname">keyInterval</td><td>推流关键帧间隔(毫秒)，当 enable 为 true 时有效，有效值需要&gt;=1000 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>调用是否正常<ul>
<li>true：正常执行调用流程，会收到 <a class="el" href="protocol_j_c_media_channel_callback-p.html#a8f10fcd984b93e9d9ae2ab14b848ba32">onMediaChannelPropertyChange</a> 通知</li>
<li>false：调用失败，不会收到通知回调 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a5ef724d64936c83f2d68346314755e9f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ef724d64936c83f2d68346314755e9f">&#9670;&nbsp;</a></span>enableRecord:recordParam:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) enableRecord: </td>
          <td></td>
          <td class="paramtype">(bool)&#160;</td>
          <td class="paramname"><em>enable</em></td>
        </tr>
        <tr>
          <td class="paramkey">recordParam:</td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_j_c_media_channel_record_param.html">JCMediaChannelRecordParam</a> *__nullable)&#160;</td>
          <td class="paramname"><em>recordParam</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>开启/关闭视频录制</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">enable</td><td>开启或关闭视频录制<ul>
<li>true: 开启</li>
<li>false: 关闭 </li>
</ul>
</td></tr>
    <tr><td class="paramname">recordParam</td><td><a class="el" href="interface_j_c_media_channel_record_param.html">JCMediaChannelRecordParam</a> 录制参数对象，当 enable 为 true 时，可以更改由 <a class="el" href="interface_j_c_media_channel.html#aae7c111f87465ec2dbac767b63f484aa">join</a> 时传入的录制参数，不需更改则填 nil </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>调用是否正常<ul>
<li>true：正常执行调用流程，会收到 <a class="el" href="protocol_j_c_media_channel_callback-p.html#a8f10fcd984b93e9d9ae2ab14b848ba32">onMediaChannelPropertyChange</a> 通知</li>
<li>false：调用失败，不会收到通知回调 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a79b28b8dada5450c5f25e2844962b7d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79b28b8dada5450c5f25e2844962b7d0">&#9670;&nbsp;</a></span>enableScreenShare:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) enableScreenShare: </td>
          <td></td>
          <td class="paramtype">(bool)&#160;</td>
          <td class="paramname"><em>enable</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>开启/关闭屏幕分享</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">enable</td><td>开启或关闭屏幕分享<ul>
<li>true: 开启</li>
<li>false: 关闭 </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>调用是否正常<ul>
<li>true：正常执行调用流程</li>
<li>false：调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a2e9c87899585ac3e730a273f20ed1aea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e9c87899585ac3e730a273f20ed1aea">&#9670;&nbsp;</a></span>enableSelfVideoRatio:ratio:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) enableSelfVideoRatio: </td>
          <td></td>
          <td class="paramtype">(bool)&#160;</td>
          <td class="paramname"><em>enable</em></td>
        </tr>
        <tr>
          <td class="paramkey">ratio:</td>
          <td></td>
          <td class="paramtype">(float)&#160;</td>
          <td class="paramname"><em>ratio</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>设置自身视频宽高比</p>
<dl class="section note"><dt>注解</dt><dd>必须加入频道后设置才能生效</dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">enable</td><td>是否开启自身视频宽高比<ul>
<li>true: 开启</li>
<li>false: 关闭 </li>
</ul>
</td></tr>
    <tr><td class="paramname">ratio</td><td>视频宽高比 </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="acfdb1bfa7e079a552a4441050e816560"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acfdb1bfa7e079a552a4441050e816560">&#9670;&nbsp;</a></span>enableUploadAudioStream:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) enableUploadAudioStream: </td>
          <td></td>
          <td class="paramtype">(bool)&#160;</td>
          <td class="paramname"><em>enable</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>开启/关闭发送本地音频流</p>
<p>加入会议时默认不发送本地音频流，加入后频道成员将听不到本端声音，若在加入前开启发送本地音频流，加入后频道成员将听见本端声音，建议每次 <a class="el" href="interface_j_c_media_channel.html#aae7c111f87465ec2dbac767b63f484aa">join</a> 前设置 <br  />
 会议中也可调用此方法开启或关闭发送本地音频流，服务器会更新状态并同步给其他频道成员，若关闭，则频道成员将听不到本端声音，若开启，频道成员会恢复本端声音 <br  />
 会议中调用此方法不影响接收远端音频</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">enable</td><td>是否发送本地音频流<ul>
<li>true: 发送</li>
<li>false: 不发送 </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>调用是否正常<ul>
<li>true: 正常执行调用流程<ul>
<li>在调用此方法时，用户的频道状态不是已加入状态，则不会收到回调通知</li>
<li>在调用此方法时，用户的频道状态是已加入状态，则会收到 <a class="el" href="protocol_j_c_media_channel_callback-p.html#a8f10fcd984b93e9d9ae2ab14b848ba32">onMediaChannelPropertyChange</a> 通知</li>
</ul>
</li>
<li>false: 调用失败，不会收到回调通知 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a12d0c37563fc883d624c1e52c70d380a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a12d0c37563fc883d624c1e52c70d380a">&#9670;&nbsp;</a></span>enableUploadVideoStream:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) enableUploadVideoStream: </td>
          <td></td>
          <td class="paramtype">(bool)&#160;</td>
          <td class="paramname"><em>enable</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>开启/关闭发送本地视频流</p>
<p>加入会议时默认发送本地视频流，若关闭发送本地视频流，加入后频道成员将看不到本端视频画面，建议每次 <a class="el" href="interface_j_c_media_channel.html#aae7c111f87465ec2dbac767b63f484aa">join</a> 前设置 <br  />
 会议中也可调用此方法开启或关闭发送本地视频流，服务器会更新状态并同步给其他频道成员，若关闭，则频道成员将看不到本端视频画面，若开启，频道成员会恢复本端视频画面 <br  />
 会议中调用此方法不影响接收远端视频</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">enable</td><td>是否发送本地视频流<ul>
<li>true: 发送</li>
<li>false: 不发送 </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>调用是否正常<ul>
<li>true：正常执行调用流程<ul>
<li>在调用此方法时，用户的频道状态不是已加入状态，则不会收到回调通知</li>
<li>在调用此方法时，用户的频道状态是已加入状态，则会收到 <a class="el" href="protocol_j_c_media_channel_callback-p.html#a8f10fcd984b93e9d9ae2ab14b848ba32">onMediaChannelPropertyChange</a> 通知</li>
</ul>
</li>
<li>false：调用失败，不会收到回调通知 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a4eebb7982edd5f589af377fa0e0ce014"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4eebb7982edd5f589af377fa0e0ce014">&#9670;&nbsp;</a></span>getCustomProperty</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (NSString * __nullable) getCustomProperty </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>获取自定义频道属性</p>
<p>调用此接口来获取频道自定义属性</p>
<dl class="section return"><dt>返回</dt><dd>自定义属性 </dd></dl>

</div>
</div>
<a id="af87e398452edac3b76ad96ae2c0c00ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af87e398452edac3b76ad96ae2c0c00ba">&#9670;&nbsp;</a></span>getCustomRole</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga7131185993d8d7df9bfccdec3b087740">JCMediaChannelCustomRole</a>) getCustomRole </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>获得自定义角色</p>
<dl class="section return"><dt>返回</dt><dd><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga7131185993d8d7df9bfccdec3b087740">自定义角色</a> </dd></dl>

</div>
</div>
<a id="a217cd598c99384ab0f4293af6b7b6141"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a217cd598c99384ab0f4293af6b7b6141">&#9670;&nbsp;</a></span>getCustomState</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga2a01dac63a4b8ce38562c4db9b704333">JCMediaChannelCustomState</a>) getCustomState </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>获得自定义状态</p>
<dl class="section return"><dt>返回</dt><dd><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga2a01dac63a4b8ce38562c4db9b704333">自定义状态</a> </dd></dl>

</div>
</div>
<a id="a2feaf09ec144035583ec829291f85f22"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2feaf09ec144035583ec829291f85f22">&#9670;&nbsp;</a></span>getParticipant:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="interface_j_c_media_channel_participant.html">JCMediaChannelParticipant</a>* __nullable) getParticipant: </td>
          <td></td>
          <td class="paramtype">(NSString *__nonnull)&#160;</td>
          <td class="paramname"><em>userId</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>根据用户标识获取频道成员</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">userId</td><td>用户唯一标识 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd><ul>
<li>频道内无此用户标识的用户: nil</li>
<li>频道内有此用户标识的用户: <a class="el" href="interface_j_c_media_channel_participant.html">JCMediaChannelParticipant</a> 对象 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a4cf23f3d19b23f8658c8b8ab275d2aae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4cf23f3d19b23f8658c8b8ab275d2aae">&#9670;&nbsp;</a></span>getStatistics</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (NSString * __nullable) getStatistics </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>获取统计信息</p>
<p>以Json字符串形式返回，其中包含 "Config"， "Network"，"Transport" 和 "Participants" 4个节点</p>
<dl class="section return"><dt>返回</dt><dd>统计信息 </dd></dl>

</div>
</div>
<a id="a40d38e8ba39a92370ea614fdd4baafe8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40d38e8ba39a92370ea614fdd4baafe8">&#9670;&nbsp;</a></span>inviteSipUser:sipParam:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (int) inviteSipUser: </td>
          <td></td>
          <td class="paramtype">(NSString *__nonnull)&#160;</td>
          <td class="paramname"><em>userId</em></td>
        </tr>
        <tr>
          <td class="paramkey">sipParam:</td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_j_c_media_channel_sip_param.html">JCMediaChannelSipParam</a> *__nonnull)&#160;</td>
          <td class="paramname"><em>sipParam</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>邀请Sip用户</p>
<p>一般用于对接落地网关等，结果通过 <a class="el" href="protocol_j_c_media_channel_callback-p.html#ad149be58b9ecd0b4e046c23c1d34f475">onInviteSipUserResult</a> 通知</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">userId</td><td>一般为号码 </td></tr>
    <tr><td class="paramname">sipParam</td><td><a class="el" href="interface_j_c_media_channel_sip_param.html">JCMediaChannelSipParam</a> 参数对象 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>调用是否正常<ul>
<li>&gt; 0：操作id，结果通过 <a class="el" href="protocol_j_c_media_channel_callback-p.html#ad149be58b9ecd0b4e046c23c1d34f475">onInviteSipUserResult</a> 通知</li>
<li>-1：失败，不会收到回调通知 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="aae7c111f87465ec2dbac767b63f484aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aae7c111f87465ec2dbac767b63f484aa">&#9670;&nbsp;</a></span>join:joinParam:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) join: </td>
          <td></td>
          <td class="paramtype">(NSString *__nonnull)&#160;</td>
          <td class="paramname"><em>channelIdOrUri</em></td>
        </tr>
        <tr>
          <td class="paramkey">joinParam:</td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_j_c_media_channel_join_param.html">JCMediaChannelJoinParam</a> *__nullable)&#160;</td>
          <td class="paramname"><em>joinParam</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>加入频道</p>
<p>加入结果通过 <a class="el" href="protocol_j_c_media_channel_callback-p.html#ac442c8c1d360ba3b38788ee428424ed2">onJoin</a> 通知</p>
<p>在调用此方法时需要保证自己的频道状态为空闲状态，否则将直接返回 false</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">channelIdOrUri</td><td>媒体频道标识或者频道Uri，当入参 <a class="el" href="interface_j_c_media_channel_join_param.html">JCMediaChannelJoinParam</a> 对象 中 uriMode 设置为 true 时表示频道 Uri，否则表示频道标识 </td></tr>
    <tr><td class="paramname">joinParam</td><td><a class="el" href="interface_j_c_media_channel_join_param.html">JCMediaChannelJoinParam</a> 对象，没有则填 nil </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>调用是否正常<ul>
<li>true: 正常执行调用流程</li>
<li>false: 调用失败<ul>
<li>在调用此方法时，用户的频道状态不是空闲状态，则不会收到回调通知</li>
<li>在调用此方法时，用户的频道时空闲状态，则会收到 <a class="el" href="protocol_j_c_media_channel_callback-p.html#ac442c8c1d360ba3b38788ee428424ed2">onJoin</a>| 方法通知 </li>
</ul>
</li>
</ul>
</dd></dl>

</div>
</div>
<a id="acd1a648db825b4c5d32afd7403ad9114"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd1a648db825b4c5d32afd7403ad9114">&#9670;&nbsp;</a></span>kick:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (BOOL) kick: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_j_c_media_channel_participant.html">JCMediaChannelParticipant</a> *__nonnull)&#160;</td>
          <td class="paramname"><em>participant</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>将成员踢出会议</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">participant</td><td>成员 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>调用是否正常<ul>
<li>true：正常执行调用流程</li>
<li>false：调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a464117e54a77bccbfd513ccff533708b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a464117e54a77bccbfd513ccff533708b">&#9670;&nbsp;</a></span>leave</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) leave </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>离开频道</p>
<p>当前只支持同时加入一个频道，结果通过 <a class="el" href="protocol_j_c_media_channel_callback-p.html#a0397acf71428976f43c72effbec2a0ad">onLeave</a> 通知</p>
<dl class="section return"><dt>返回</dt><dd>调用是否正常<ul>
<li>true: 正常执行调用流程</li>
<li>false: 调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="adbcf56921812241efff844203504b1e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adbcf56921812241efff844203504b1e6">&#9670;&nbsp;</a></span>query:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (int) query: </td>
          <td></td>
          <td class="paramtype">(NSString *__nonnull)&#160;</td>
          <td class="paramname"><em>channelId</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>查询频道相关信息</p>
<p>例如频道是否存在，频道人数等，结果通过 <a class="el" href="protocol_j_c_media_channel_callback-p.html#a4a80b6bbb7da129d67cf1596a14c54e5">onQuery</a> 通知</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">channelId</td><td>频道标识 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>操作id，与 <a class="el" href="protocol_j_c_media_channel_callback-p.html#a4a80b6bbb7da129d67cf1596a14c54e5">onQuery</a> 回调中的 operationId 对应 </dd></dl>

</div>
</div>
<a id="ad3e33762ee2a89b6232485f66f9b54a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3e33762ee2a89b6232485f66f9b54a7">&#9670;&nbsp;</a></span>requestScreenVideo:pictureSize:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) requestScreenVideo: </td>
          <td></td>
          <td class="paramtype">(NSString *__nonnull)&#160;</td>
          <td class="paramname"><em>screenUri</em></td>
        </tr>
        <tr>
          <td class="paramkey">pictureSize:</td>
          <td></td>
          <td class="paramtype">(<a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga0485f0dd249c9a34171bc7eb2c6cc7c0">JCMediaChannelPictureSize</a>)&#160;</td>
          <td class="paramname"><em>pictureSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>请求频道成员屏幕共享的视频流</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000010">弃用:</a></b></dt><dd>从 JCSDK-2.3.1-202009101 版本开始弃用，建议使用 <a class="el" href="interface_j_c_media_channel.html#a816c2a4794b157fd6a17cd2cd1196ae8">startScreenShareVideo</a> 方法代替</dd></dl>
<p>当 pictureSize 为 <a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga0485f0dd249c9a34171bc7eb2c6cc7c0a5ede1d0beab0c56516f3a44f903d9f2c">JCMediaChannelPictureSizeNone</a> 表示关闭请求</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">screenUri</td><td>屏幕分享uri </td></tr>
    <tr><td class="paramname">pictureSize</td><td>视频请求尺寸类型，参见：<ul>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga0485f0dd249c9a34171bc7eb2c6cc7c0a5ede1d0beab0c56516f3a44f903d9f2c">JCMediaChannelPictureSizeNone</a> : 不渲染</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga0485f0dd249c9a34171bc7eb2c6cc7c0af335d60cf86c54774b415dfeaadd67d3">JCMediaChannelPictureSizeMin</a> : 最小尺寸</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga0485f0dd249c9a34171bc7eb2c6cc7c0ae3dc4a6b473d076a85f00d89dc718a7e">JCMediaChannelPictureSizeSmall</a> : 小尺寸</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga0485f0dd249c9a34171bc7eb2c6cc7c0a140d78e861f47c4bb4415ab7c8268d44">JCMediaChannelPictureSizeLarge</a> : 大尺寸</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga0485f0dd249c9a34171bc7eb2c6cc7c0a8af641b204055b5bd8091c21b2ca1262">JCMediaChannelPictureSizeMax</a> : 最大尺寸 </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>调用是否正常<ul>
<li>true：正常执行调用流程</li>
<li>false：调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a1b44d999a8f89309df3580efc9ef9225"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b44d999a8f89309df3580efc9ef9225">&#9670;&nbsp;</a></span>requestVideo:pictureSize:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) requestVideo: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_j_c_media_channel_participant.html">JCMediaChannelParticipant</a> *__nonnull)&#160;</td>
          <td class="paramname"><em>participant</em></td>
        </tr>
        <tr>
          <td class="paramkey">pictureSize:</td>
          <td></td>
          <td class="paramtype">(<a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga0485f0dd249c9a34171bc7eb2c6cc7c0">JCMediaChannelPictureSize</a>)&#160;</td>
          <td class="paramname"><em>pictureSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>请求频道中其他用户的视频流</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000009">弃用:</a></b></dt><dd>从 JCSDK-2.3.1-202009101 版本开始弃用，建议使用 <a class="el" href="interface_j_c_media_channel_participant.html#a8253f928291505c450d5d320ece3c15c">startVideo</a> 方法代替</dd></dl>
<p>当 pictureSize 为 <a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga0485f0dd249c9a34171bc7eb2c6cc7c0a5ede1d0beab0c56516f3a44f903d9f2c">JCMediaChannelPictureSizeNone</a> 时表示关闭请求</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">participant</td><td><a class="el" href="interface_j_c_media_channel_participant.html">JCMediaChannelParticipant</a> 频道中其他成员对象 </td></tr>
    <tr><td class="paramname">pictureSize</td><td>视频请求的尺寸类型：<ul>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga0485f0dd249c9a34171bc7eb2c6cc7c0a5ede1d0beab0c56516f3a44f903d9f2c">JCMediaChannelPictureSizeNone</a> : 不渲染</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga0485f0dd249c9a34171bc7eb2c6cc7c0af335d60cf86c54774b415dfeaadd67d3">JCMediaChannelPictureSizeMin</a> : 最小尺寸</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga0485f0dd249c9a34171bc7eb2c6cc7c0ae3dc4a6b473d076a85f00d89dc718a7e">JCMediaChannelPictureSizeSmall</a> : 小尺寸</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga0485f0dd249c9a34171bc7eb2c6cc7c0a140d78e861f47c4bb4415ab7c8268d44">JCMediaChannelPictureSizeLarge</a> : 大尺寸</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga0485f0dd249c9a34171bc7eb2c6cc7c0a8af641b204055b5bd8091c21b2ca1262">JCMediaChannelPictureSizeMax</a> : 最大尺寸 </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>调用是否正常<ul>
<li>true：正常执行调用流程，会收到 <a class="el" href="protocol_j_c_media_channel_callback-p.html#ab971c654c6ec7b55706aaa2c9a84bb87">onParticipantUpdate</a> 通知</li>
<li>false：调用失败，不会收到回调通知 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="ab1d66a2c12211d3f6913237904e115da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab1d66a2c12211d3f6913237904e115da">&#9670;&nbsp;</a></span>sendCommand:commandParam:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) sendCommand: </td>
          <td></td>
          <td class="paramtype">(NSString *__nonnull)&#160;</td>
          <td class="paramname"><em>name</em></td>
        </tr>
        <tr>
          <td class="paramkey">commandParam:</td>
          <td></td>
          <td class="paramtype">(NSString *__nonnull)&#160;</td>
          <td class="paramname"><em>param</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>发送指令<br  />
</p>
<ul>
<li>指令名: StartForward 指令作用：请求服务器开始转发音视频<br  />
 参数格式:{"MtcConfUserUriKey": "用户Uri", "MtcConfMediaOptionKey": "类型"}<br  />
 用户Uri: 通过调用底层Mtc接口获取 MtcUser.Mtc_UserFormUri(EN_MTC_USER_ID_USERNAME, userId)<br  />
 类型: 服务器转发分三种 音频、视频、音视频，具体可参考底层mtc_conf.h下的MtcConfMedia的枚举值。<br  />
 注意1:指令发送成功后会收到 <a class="el" href="protocol_j_c_media_channel_callback-p.html#ab971c654c6ec7b55706aaa2c9a84bb87">onParticipantUpdate</a> 回调 <br  />
 举例: {"MtcConfUserUriKey": "[username:justin@sample.cloud.justalk.com]", "MtcConfMediaOptionKey": 3}<br  />
<br  />
</li>
<li>指令名: StopForward 指令作用：请求服务器停止转发音视频<br  />
 参数格式:{"MtcConfUserUriKey": "用户URL", "MtcConfMediaOptionKey": "类型"}<br  />
 用户Uri: 通过调用底层Mtc接口获取 MtcUser.Mtc_UserFormUri(EN_MTC_USER_ID_USERNAME, userId)<br  />
 类型: 服务器转发分三种 音频、视频、音视频，具体可参考底层mtc_conf.h下的MtcConfMedia的枚举值。<br  />
 注意1:指令发送成功后会收到 <a class="el" href="protocol_j_c_media_channel_callback-p.html#ab971c654c6ec7b55706aaa2c9a84bb87">onParticipantUpdate</a> 回调 <br  />
 举例: {"MtcConfUserUriKey": "[username:justin@sample.cloud.justalk.com]", "MtcConfMediaOptionKey": 3}<br  />
<br  />
</li>
<li>指令名: ChangeTitle 指令作用：请求修改会议主题<br  />
 参数格式: {"MtcConfTitleKey":"修改的内容"}<br  />
 修改的内容: 比如原来主题设置的是"123"，现在改为"321"。<br  />
 注意1:指令发送成功后会收到 <a class="el" href="protocol_j_c_media_channel_callback-p.html#a12ada003140a0c5a44c0c5f69702acf7">onMediaChannelPropertyChange</a> 回调<br  />
 注意2:可通过 JCManager.shared.mediaChannel.title 获取主题<br  />
 举例:{"MtcConfTitleKey": "321"}<br  />
<br  />
</li>
<li>指令名: SetPartpProp 指令作用：批量修改成员状态，角色，昵称。<br  />
 参数格式: {"MtcConfStateKey":1,"MtcConfDisplayNameKey":"1314","MtcConfPartpLstKey":["[username:10086@sample.cloud.justalk.com]"],"MtcConfRoleKey":7}<br  />
 要修改的成员状态: 具体可参考底层 mtc_conf.h 下的 MtcConfState 的枚举值<br  />
 要修改的成员角色: 具体可参考底层 mtc_conf.h 下的 MtcConfRole 的枚举值<br  />
 要修改的成员昵称: 比如"123"<br  />
 用户Uri:通过调用底层Mtc接口获取 MtcUser.Mtc_UserFormUri(EN_MTC_USER_ID_USERNAME, userId); <br  />
 注意1:指令发送成功后会收到 <a class="el" href="protocol_j_c_media_channel_callback-p.html#ab971c654c6ec7b55706aaa2c9a84bb87">onParticipantUpdate</a> 回调 <br  />
 注意2:MtcConfStateKey、MtcConfDisplayNameKey、MtcConfRoleKey这三个字段，可根据用户想修改哪个值，就在json字符串里面加入哪个。<br  />
 注意3:MtcConfPartpLstKey 可包含多个用户uri进行批量修改<br  />
 举例:{"MtcConfStateKey":4,"MtcConfDisplayNameKey":"123","MtcConfPartpLstKey":{"MtcConfUserUriKey":"[username:10086@sample.cloud.justalk.com]","MtcConfStateKey":4},"MtcConfRoleKey":4}<br  />
<br  />
</li>
<li>指令名：ReplayApplyMode 指令作用：设置推流布局模式<br  />
 指令参数格式：{"MtcConfCompositeModeKey": 参数值}<br  />
 参数值：<br  />
 1 平铺模式,所有视频均分平铺<br  />
 2 讲台模式,共享为大图,其他视频为小图<br  />
 3 演讲模式,共享为大图,共享者视频为小图,其他不显示<br  />
 4 自定义模式,由ReplayApplyLayout指令设置所有视频布局<br  />
 5 智能模式。<br  />
 举例：输入指令参数{"MtcConfCompositeModeKey": 2}就是讲台模式&lt;br&gt;<br  />
</li>
<li>指令名：ReplayApplyLayout 指令作用：为多用户设置自定义推流布局<br  />
 指令参数格式：{[{"MtcConfUserUriKey": "用户uri", "MtcConfPictureSizeKey": 视频尺寸,"MtcConfRectangleKey": 图像矩形的具体方位和长宽}]，...}<br  />
 用户uri：通过调用底层Mtc接口获取MtcUser.Mtc_UserFormUri((uint)EN_MTC_USER_ID_TYPE.EN_MTC_USER_ID_USERNAME，userId)<br  />
 视频尺寸：一共5个枚举值，具体枚举值请参考底层mtc_conf.h下的MtcConfPs枚举<br  />
 图像矩形的具体方位和长宽：这是一个Json格式的Array对象表示这个图像的位置和大小，第一个值是图像左上角的x坐标(0~1)<br  />
 第二个值是图像左上角的y坐标(0~1)。第三个值是图像的宽(0~1)。第四个值是图像的高(0~1)。比如[0.5,0.5,0.5,0.5]表示图像在右下角长宽是原始屏幕的一半<br  />
 举例：<br  />
 [{"MtcConfUserUriKey":"[username:zhang@xxxx.cloud.justalk.com]","MtcConfPictureSizeKey":512,"MtcConfRectangleKey":[0.5,0.5,0.5,0.5]}]<br  />
 表示成员zhang小尺寸的视频在屏幕右下角位置，长宽是原始屏幕的一半<br  />
</li>
</ul>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>指令名 </td></tr>
    <tr><td class="paramname">param</td><td>指令参数 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>调用是否正常<ul>
<li>true：正常执行调用流程</li>
<li>false：调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="af8b6019fa2b0982d7822cef8cd9df6c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af8b6019fa2b0982d7822cef8cd9df6c4">&#9670;&nbsp;</a></span>sendCommandToDelivery:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) sendCommandToDelivery: </td>
          <td></td>
          <td class="paramtype">(NSString *__nonnull)&#160;</td>
          <td class="paramname"><em>command</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>发送命令给推流或录制器</p>
<p>发送命令给推流时，只有加入成功并且推流状态为 <a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga6d8f048f5632efef172fab89239dfb22a864e4cba49d6f710b8a364f2d6af1f6d">JCMediaChannelCdnStateReady</a> 才生效 <br  />
 发送命令给录制器时，只有加入成功并且录制状态为 <a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga7f08f9168c5648a33072b5856de6af1aaa16cf34d0ce9d85792cd200ffe48bd37">JCMediaChannelRecordStateReady</a> 才生效</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">command</td><td>命令字符串 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>调用是否正常<ul>
<li>true：正常执行调用流程</li>
<li>false：调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a7617239966ea595482eb11beb0b8ff4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7617239966ea595482eb11beb0b8ff4a">&#9670;&nbsp;</a></span>sendMessage:content:toUserId:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) sendMessage: </td>
          <td></td>
          <td class="paramtype">(NSString *__nonnull)&#160;</td>
          <td class="paramname"><em>type</em></td>
        </tr>
        <tr>
          <td class="paramkey">content:</td>
          <td></td>
          <td class="paramtype">(NSString *__nonnull)&#160;</td>
          <td class="paramname"><em>content</em></td>
        </tr>
        <tr>
          <td class="paramkey">toUserId:</td>
          <td></td>
          <td class="paramtype">(NSString *__nullable)&#160;</td>
          <td class="paramname"><em>toUserId</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>发送消息</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">type</td><td>消息类型 </td></tr>
    <tr><td class="paramname">content</td><td>消息内容，不能为空，并且当 toUserId 不为 nil 时，content 不能大于 4k </td></tr>
    <tr><td class="paramname">toUserId</td><td>接收者id，传入 nil 则发给频道所有人员 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>调用是否正常<ul>
<li>true：正常执行调用流程</li>
<li>false：调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a5e9e50c858a3d47889f578b323a9faa9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e9e50c858a3d47889f578b323a9faa9">&#9670;&nbsp;</a></span>setCustomProperty:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) setCustomProperty: </td>
          <td></td>
          <td class="paramtype">(NSString *__nonnull)&#160;</td>
          <td class="paramname"><em>property</em></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>设置频道自定义属性</p>
<p>调用此接口来设置频道自定义属性</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">property</td><td>自定义属性 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>调用是否正常<ul>
<li>true：正常执行调用流程</li>
<li>false：调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a9777d3af4a484672273ca4a766b32e58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9777d3af4a484672273ca4a766b32e58">&#9670;&nbsp;</a></span>setCustomRole:participant:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) setCustomRole: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga7131185993d8d7df9bfccdec3b087740">JCMediaChannelCustomRole</a>)&#160;</td>
          <td class="paramname"><em>customRole</em></td>
        </tr>
        <tr>
          <td class="paramkey">participant:</td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_j_c_media_channel_participant.html">JCMediaChannelParticipant</a> *__nullable)&#160;</td>
          <td class="paramname"><em>participant</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>设置自定义角色</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">customRole</td><td><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga7131185993d8d7df9bfccdec3b087740">自定义角色</a> </td></tr>
    <tr><td class="paramname">participant</td><td><a class="el" href="interface_j_c_media_channel_participant.html">JCMediaChannelParticipant</a> 对象，频道中的成员，nil 则默认设置自己 </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="adae24eb1c040e18d0ca98ddcab18da21"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adae24eb1c040e18d0ca98ddcab18da21">&#9670;&nbsp;</a></span>setCustomState:participant:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) setCustomState: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga2a01dac63a4b8ce38562c4db9b704333">JCMediaChannelCustomState</a>)&#160;</td>
          <td class="paramname"><em>customState</em></td>
        </tr>
        <tr>
          <td class="paramkey">participant:</td>
          <td></td>
          <td class="paramtype">(<a class="el" href="interface_j_c_media_channel_participant.html">JCMediaChannelParticipant</a> *__nullable)&#160;</td>
          <td class="paramname"><em>participant</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>设置自定义状态</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">customState</td><td><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga2a01dac63a4b8ce38562c4db9b704333">自定义状态</a> </td></tr>
    <tr><td class="paramname">participant</td><td><a class="el" href="interface_j_c_media_channel_participant.html">JCMediaChannelParticipant</a> 对象，频道中的成员，nil 则默认设置自己 </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a816c2a4794b157fd6a17cd2cd1196ae8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a816c2a4794b157fd6a17cd2cd1196ae8">&#9670;&nbsp;</a></span>startScreenShareVideo:pictureSize:</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="interface_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a>* __nullable) startScreenShareVideo: </td>
          <td></td>
          <td class="paramtype">(<a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#ga22a1fb216a9252ce2ef1afb257e530f2">JCMediaDeviceRender</a>)&#160;</td>
          <td class="paramname"><em>type</em></td>
        </tr>
        <tr>
          <td class="paramkey">pictureSize:</td>
          <td></td>
          <td class="paramtype">(<a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga0485f0dd249c9a34171bc7eb2c6cc7c0">JCMediaChannelPictureSize</a>)&#160;</td>
          <td class="paramname"><em>pictureSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>启动频道成员的屏幕分享视频渲染</p>
<p>频道成员开启屏幕分享时，调用此方法可获得屏幕分享视频 <a class="el" href="interface_j_c_media_device_video_canvas.html">渲染对象</a></p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">type</td><td>渲染模式：<ul>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga22a1fb216a9252ce2ef1afb257e530f2a1a379da30be1aa0d2e9ec2445891dd29">JCMediaDeviceRenderFullScreen</a> : 铺满窗口，会有裁剪</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga22a1fb216a9252ce2ef1afb257e530f2a071059ec95589413a8e2aaa4cc25268d">JCMediaDeviceRenderFullContent</a> : 全图像显示，会有黑边</li>
<li><a class="el" href="group___xE8_xAE_xBE_xE5_xA4_x87_xE6_xA8_xA1_xE5_x9D_x97.html#gga22a1fb216a9252ce2ef1afb257e530f2a0c2cbd51feb1a24fbba312e4c2a41084">JCMediaDeviceRenderFullAuto</a> : 自适应 </li>
</ul>
</td></tr>
    <tr><td class="paramname">pictureSize</td><td>视频请求的尺寸类型：<ul>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga0485f0dd249c9a34171bc7eb2c6cc7c0a5ede1d0beab0c56516f3a44f903d9f2c">JCMediaChannelPictureSizeNone</a> : 不渲染</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga0485f0dd249c9a34171bc7eb2c6cc7c0af335d60cf86c54774b415dfeaadd67d3">JCMediaChannelPictureSizeMin</a> : 最小尺寸</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga0485f0dd249c9a34171bc7eb2c6cc7c0ae3dc4a6b473d076a85f00d89dc718a7e">JCMediaChannelPictureSizeSmall</a> : 小尺寸</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga0485f0dd249c9a34171bc7eb2c6cc7c0a140d78e861f47c4bb4415ab7c8268d44">JCMediaChannelPictureSizeLarge</a> : 大尺寸</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga0485f0dd249c9a34171bc7eb2c6cc7c0a8af641b204055b5bd8091c21b2ca1262">JCMediaChannelPictureSizeMax</a> : 最大尺寸 </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd><a class="el" href="interface_j_c_media_device_video_canvas.html">JCMediaDeviceVideoCanvas</a> 渲染对象 </dd></dl>

</div>
</div>
<a id="ac2905c2f6c51c4c01c61f5f4d6c39a49"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2905c2f6c51c4c01c61f5f4d6c39a49">&#9670;&nbsp;</a></span>stop</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) stop </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>关闭频道</p>
<p>此频道内的成员都将被强制退出</p>
<dl class="section return"><dt>返回</dt><dd>调用是否正常<ul>
<li>true: 正常执行调用流程<ul>
<li>在调用此方法时，用户的频道状态是空闲状态，不会收到回调通知</li>
<li>在调用此方法时，用户的频道状态不是空闲状态，则会收到 <a class="el" href="protocol_j_c_media_channel_callback-p.html#af0ed7f8f42ae29eb21a2197afa00f4c3">onStop</a> 通知</li>
</ul>
</li>
<li>false: 调用失败 </li>
</ul>
</dd></dl>

</div>
</div>
<a id="a704cf64d9a0cc2f3c4cdd12348b278ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a704cf64d9a0cc2f3c4cdd12348b278ce">&#9670;&nbsp;</a></span>stopScreenShareVideo</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">- (void) stopScreenShareVideo </td>
          <td></td>
          <td class="paramname"></td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>停止屏幕分享视频渲染</p>
<p>调用 <a class="el" href="interface_j_c_media_channel.html#a816c2a4794b157fd6a17cd2cd1196ae8">startScreenShareVideo</a> 启动屏幕分享视频渲染后，调用此方法可停止 </p>

</div>
</div>
<h2 class="groupheader">属性说明</h2>
<a id="ad050a05ae000da5132b6034c66b12bb9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad050a05ae000da5132b6034c66b12bb9">&#9670;&nbsp;</a></span>audioOutput</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) audioOutput</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>是否音频输出</p>
<p>本地没有音频输出的话，就听不到频道内其他成员的声音了</p>
<ul>
<li>true: 输出中</li>
<li>false: 未输出 </li>
</ul>

</div>
</div>
<a id="a5c421ef380fbe19dd2bbb8226272cf63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c421ef380fbe19dd2bbb8226272cf63">&#9670;&nbsp;</a></span>cdnState</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga6d8f048f5632efef172fab89239dfb22">JCMediaChannelCdnState</a>) cdnState</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>获得cdn推流状态</p><ul>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga6d8f048f5632efef172fab89239dfb22ab49bc94f7495cb76dfabb68d3133ef17">JCMediaChannelCdnStateNone</a> : 无法进行Cdn推流</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga6d8f048f5632efef172fab89239dfb22a864e4cba49d6f710b8a364f2d6af1f6d">JCMediaChannelCdnStateReady</a> : 可以开启Cdn推流</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga6d8f048f5632efef172fab89239dfb22a13db77c97fcb34e0c27d7b87c4d8756f">JCMediaChannelCdnStateRunning</a> : Cdn推流中 </li>
</ul>

</div>
</div>
<a id="a9ec8a0a382105daa2fa68cc1d67140a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ec8a0a382105daa2fa68cc1d67140a6">&#9670;&nbsp;</a></span>channelId</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (NSString* __nullable) channelId</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">copy</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>频道标识 </p>

</div>
</div>
<a id="ae369b43c1416966346c5b0e812f6b3c1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae369b43c1416966346c5b0e812f6b3c1">&#9670;&nbsp;</a></span>channelNumber</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (int) channelNumber</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>频道号 </p>

</div>
</div>
<a id="a95d38657f312acb8975f83e5edbddff3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95d38657f312acb8975f83e5edbddff3">&#9670;&nbsp;</a></span>channelUri</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (NSString* __nullable) channelUri</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">copy</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>频道 Uri </p>

</div>
</div>
<a id="a508a06d19f5ad3767911052afe5e54b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a508a06d19f5ad3767911052afe5e54b9">&#9670;&nbsp;</a></span>confId</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (long) confId</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>会议号 </p>

</div>
</div>
<a id="aa1aac4cfe9687c8643facedf0758ea43"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1aac4cfe9687c8643facedf0758ea43">&#9670;&nbsp;</a></span>participants</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (NSArray* __nonnull) participants</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">strong</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>获得频道中的所有成员 </p>

</div>
</div>
<a id="a03fd9357811dcd0b0b4d0c9a63979b75"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a03fd9357811dcd0b0b4d0c9a63979b75">&#9670;&nbsp;</a></span>password</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (NSString* __nonnull) password</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>频道密码 </p>

</div>
</div>
<a id="a625a6dd3a5d0ae9df25698aebc96a2f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a625a6dd3a5d0ae9df25698aebc96a2f2">&#9670;&nbsp;</a></span>recordState</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga7f08f9168c5648a33072b5856de6af1a">JCMediaChannelRecordState</a>) recordState</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>获得视频录制状态，参见：</p><ul>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga7f08f9168c5648a33072b5856de6af1aaf8084bae069482e29317dba3daff461a">JCMediaChannelRecordStateNone</a> : 无法进行视频录制</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga7f08f9168c5648a33072b5856de6af1aaa16cf34d0ce9d85792cd200ffe48bd37">JCMediaChannelRecordStateReady</a> : 可以开启视频录制</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga7f08f9168c5648a33072b5856de6af1aa595980c1369edb24e751d886b114101f">JCMediaChannelRecordStateRunning</a> : 视频录制中 </li>
</ul>

</div>
</div>
<a id="a501cd5147754987a2796fb3b88f74c80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a501cd5147754987a2796fb3b88f74c80">&#9670;&nbsp;</a></span>screenRenderId</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (NSString* __nullable) screenRenderId</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">copy</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>屏幕共享渲染标识</p>
<p>没有屏幕共享则为 nil </p>

</div>
</div>
<a id="a0100882cd7322da94f248efa86641c65"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0100882cd7322da94f248efa86641c65">&#9670;&nbsp;</a></span>screenUserId</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (NSString* __nullable) screenUserId</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">copy</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>屏幕共享用户标识</p>
<p>没有屏幕共享则为 nil </p>

</div>
</div>
<a id="aafc27fec7e4946b5154f43dbdc4e595d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafc27fec7e4946b5154f43dbdc4e595d">&#9670;&nbsp;</a></span>selfParticipant</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="interface_j_c_media_channel_participant.html">JCMediaChannelParticipant</a>* __nullable) selfParticipant</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>自身 <a class="el" href="interface_j_c_media_channel_participant.html">JCMediaChannelParticipant</a> 对象 </p>

</div>
</div>
<a id="a38cdd34e0ae753b9f49fa36809aa1437"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a38cdd34e0ae753b9f49fa36809aa1437">&#9670;&nbsp;</a></span>state</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (<a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#ga8037700c77019a9964f7a7b7fcfb814f">JCMediaChannelState</a>) state</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>自己当前在频道中的状态</p>
<p>当前在频道中的状态，参见：</p><ul>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga8037700c77019a9964f7a7b7fcfb814faf0f0fdcaf5717374744bc1f24adcd677">JCMediaChannelStateIdle</a> : 空闲状态</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga8037700c77019a9964f7a7b7fcfb814fa8543fa4cbb96d2d36d23d658a302bcdc">JCMediaChannelStateJoining</a> : 加入中</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga8037700c77019a9964f7a7b7fcfb814fa3179806a02aecefd7f3702c278ac8c4c">JCMediaChannelStateJoined</a> : 已加入</li>
<li><a class="el" href="group___xE5_xAA_x92_xE4_xBD_x93_xE9_xA2_x91_xE9_x81_x93_xE6_xA8_xA1_xE5_x9D_x97.html#gga8037700c77019a9964f7a7b7fcfb814fa17c7c0fdfbb8151ca20e0569be242262">JCMediaChannelStateLeaving</a> : 离开中 </li>
</ul>

</div>
</div>
<a id="a3f95e9ce419edb0b89301455b75dba4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3f95e9ce419edb0b89301455b75dba4e">&#9670;&nbsp;</a></span>title</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (NSString* __nullable) title</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">copy</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>频道标题 </p>

</div>
</div>
<a id="a07b9c934f8bd40ce2fed419befd58f42"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a07b9c934f8bd40ce2fed419befd58f42">&#9670;&nbsp;</a></span>uploadLocalAudio</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) uploadLocalAudio</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>是否上传本地音频数据</p><ul>
<li>true: 上传中</li>
<li>false: 未上传 </li>
</ul>

</div>
</div>
<a id="a2f9f270cd0360febc083eaf84ece5e91"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f9f270cd0360febc083eaf84ece5e91">&#9670;&nbsp;</a></span>uploadLocalVideo</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) uploadLocalVideo</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>是否上传本地视频数据</p><ul>
<li>true: 上传中</li>
<li>false: 未上传 </li>
</ul>

</div>
</div>
<a id="a011061a9e5d4aed2ea6e6cdfb00b3d78"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a011061a9e5d4aed2ea6e6cdfb00b3d78">&#9670;&nbsp;</a></span>volumeChangeNotify</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">- (bool) volumeChangeNotify</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span><span class="mlabel">write</span><span class="mlabel">nonatomic</span><span class="mlabel">assign</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>是否通知成员音量变化，默认不通知</p><ul>
<li>true: 通知</li>
<li>false: 不通知 </li>
</ul>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>JCSDKOC/JCSDKOC/JCMediaChannel/<a class="el" href="_j_c_media_channel_8h_source.html">JCMediaChannel.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
</small></address>
</body>
</html>
